<%-- 
    Document   : agregarFilas
    Created on : Feb 20, 2012, 9:44:41 AM
    Author     : andreth
--%>
<%@page import="clases.Matriz"%>
<%@page import="clases.Columna"%>
<%@page import="clases.Fila"%>
<%@page import="java.util.ArrayList"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <% ArrayList<Columna> columnas = ((Matriz) request.getAttribute("Matriz")).getColumnas();
       Integer numColumnas = ((Matriz) request.getAttribute("Matriz")).getNumeroColumnas();
  //  Integer numFilas = ((Matriz) request.getAttribute("Matriz")).getNumeroFilas();
       Integer tamFilas = ((Matriz) request.getAttribute("Matriz")).getFilas().size();
       Integer numFilas = tamFilas/numColumnas;
       System.out.println("numCol "+numColumnas+" numFil "+numFilas);
       System.out.println("tam fila"+  tamFilas);
    %>
    <head>
        <script language="javascript" src="/CPYD/interfaz/javascript/matrices.js" >
            var tipo = "null";
        </script>
    </head>

    <logic:present name="Matriz">
        <tiles:insert definition="mensaje"></tiles:insert>


        <h1><bean:write name="Matriz" property="nombre"></bean:write></h1>
        <h2> Agregar Filas a la Matriz </h2>
        <p><strong>Las columnas que pueden ser modificadas son aquellas pertenecientes a su unidad</strong> </p>
        <div id="tableContainer" class="tableContainer">
            
            <logic:present name="Matriz" property="columnas">
             <html:form action="/agregarFila?method=save" onsubmit="return this">
                            <html:hidden name="Matriz" property="codigoUnidad"/>
                            <html:hidden name="Matriz" property="numeroColumnas"/>
                            <html:hidden name="Matriz" property="nombre"/>                
                            <html:hidden name="Matriz" property="idMatriz"/>
                           

                <table id="tabla" cellpadding="0" cellspacing="0" width="70%" border=0 class="scrollTable">
                    <thead class="fixedHeader" id="fixedHeader">
                        <tr>

                            <logic:iterate name="Matriz"  property="columnas" id="columna">
                                <th> 
                                    <!--Escribimos los datos de las columnas ya guardadas -->
                                    <bean:write name="columna" property="nombre"></bean:write>
                                    (<bean:write name="columna" property="tipo"></bean:write>)
                                 
                                </th>
                                
                            </logic:iterate>
                                
                        </tr>
                      </thead>
                      
                      <%! String tipoColumna = ""; %>
                            <!-- Utilizamos el indexId para tener el indice en el arraylist -->
                            <logic:iterate name="Matriz" property="filas" id="fila" indexId="filIndex" >
                                       <%Integer countFila = (Integer) pageContext.getAttribute("filIndex");
                                     
                                        Integer colIndex = countFila.intValue()%numColumnas;
                                      
                                        %>
                               
                                <bean:define id="mod" value=
                                    "<%= String.valueOf((countFila.intValue())%numColumnas)%>" />
                                    <logic:equal name="mod" value="0" >
                                    <!-- Si la fila es multiplo del numero de columnas, se crea una nueva fila
                                         y aumentamos el indice de las columnas-->
                         
                                         <tr>
                                    </logic:equal>
                                <bean:define id="tipoColumna" value=
                                "<%=columnas.get(colIndex).getTipo()%>"/>
                               
                                <bean:define id="unidadColumna" value=
                                "<%=columnas.get(colIndex).getCpyd()%>"/>
                                
                             <% System.out.println("countFila, columna, tipo, cpyd"+countFila+" "+countFila.intValue()%numColumnas+" "+
                                        columnas.get(countFila.intValue()%numColumnas).getTipo()+" "+columnas.get(colIndex).getCpyd()); %>    
                              <!-- Informacion de las celdas -->
                                <td>
                                    <logic:equal name="tipoColumna" value="Lista">
                                     
                                       <!-- El caso en que la celda es tipo Lista -->
                                        
                                         <logic:equal name="unidadColumna" value="CPYD">
                                             
                                            <html:select name="fila" property="nombre" indexed="true">
                                            <html:option value="" >Seleccionar valor</html:option>
                                             <logic:present name="columna">
                                                 
                                           <html:options collection="<%=columnas.get(colIndex).getLista().getNombre()%>" labelProperty="valor" property="valor"></html:options>
                                             </logic:present>
                                            </html:select>
                                         </logic:equal>
                                         <logic:notEqual name="unidadColumna" value="CPYD">
                                            <html:select name="fila" property="nombre" indexed="true" disabled="true"> 
                                             <html:option value="" disabled="true" >Seleccionar valor</html:option>
                                            </html:select>
                                           
                                         </logic:notEqual>
                                        <html:hidden name="fila" property="nombre"/>
                                      </logic:equal>
                                    
                                             <!-- Tipo distinto de Lista -->
                                    
                                   <logic:notEqual name="tipoColumna" value="Lista">
                                        <logic:equal name="unidadColumna" value="CPYD">
                                            <% tipoColumna = columnas.get(colIndex).getTipo().toString(); %>
                                            
                                            <script type="text/javascript"> tipo = "<%= tipoColumna %>" </script>
                                            <html:text name="fila" property="nombre" indexed="true" onblur="validarCelda(this.value)" ></html:text>
                                        </logic:equal>
                                        <logic:notEqual name="unidadColumna" value="CPYD">
                                            <html:text  name="fila" property="nombre" indexed="true" disabled="true"></html:text>
                                        </logic:notEqual>
                                        
                                       <html:hidden name="fila" property="nombre"></html:hidden>
                                   </logic:notEqual>
                                  
                                   <html:hidden name="fila" property="idLogico" value="<%= colIndex.toString()%>" indexed="true" ></html:hidden>
                                   <html:hidden name="fila" property="idLogico" value="<%= colIndex.toString()%>"></html:hidden>
                                </td>
                              <!-- Fin informacion de las celdas -->
                           	 
                                  <logic:equal name="mod" value="<%=String.valueOf(numColumnas-1)%>" >
                                     <!-- Terminamos una fila --> 
                                        </tr>
                                  </logic:equal>   
                        
                            
                             </logic:iterate>
                    </table>
      </div>
          
    <div class="buttons">
        <table>
            <tr>
                <td> <!-- Parte dinamica -->
                    <button type="submit" class="positive" onclick='<%= "agregarFila(" + numColumnas + ")"%>'>
                        <img src="interfaz/images/agregar.png" alt=""/>
                        Agregar Fila
                    </button>
                </td>
                <td>
                    <button type="submit" id="boton" class="negative" onclick="eliminarFila();">
                        <img src="interfaz/images/eliminar.png" alt=""/>
                        Eliminar Fila
                    </button>
                </td>
                <td>
                  
                        <button type="submit" class="positive">
                            <img src="interfaz/images/guardar.png" alt=""/>
                            Guardar cambios
                        </button>
                </td> 
            </tr>
        </table>
     </html:form>  
  </logic:present>
    </div>
    </logic:present> 
</html>
